package com.tinyseed.hmxx.common.base;

import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import javax.persistence.Column;
import javax.persistence.EntityListeners;
import javax.persistence.MappedSuperclass;
import java.io.Serializable;
import java.sql.Timestamp;

/**
 * @version Revision 1.0.0
 * @版权：
 * @author:
 * @email:Howard.Wu@.com
 * @see:
 * @创建日期：
 * @功能说明：
 * @begin
 * @修改记录:
 * @修改后版本 修改人        修改内容
 * @ Howard        	创建
 * @end
 */

@Setter
@Getter
@MappedSuperclass
/* 监听配置，自动注入修改者创建者 */
@EntityListeners(AuditingEntityListener.class)
public class BaseEntity implements Serializable {

    /**
     * 创建时间
     */
    @Column(nullable = true)
    @CreationTimestamp
    public Timestamp createTime;
    /**
     * 最后修改时间
     */
    @UpdateTimestamp
    @Column(nullable = true)
    public Timestamp modifyTime;
    /**
     * 创建人
     */
    @Column(nullable = true)
    @CreatedBy
    public String creator;
    /**
     * 最后操作人
     */
    @Column(nullable = true)
    @LastModifiedBy
    public String modifier;

    public @interface Update {
    }

}
